<?php

class ZFKiller_String {

	public static function makeRandString($tamanho=10, $maiusculas=true, $minusculas=true, $numeros=true, $simbolos=false){
		$string = '';
		if ($maiusculas){
			$string .= "ABCDEFGHIJKLMNOPQRSTUVYXWZ";
		}
		if ($minusculas){
			$string .= "abcdefghijklmnopqrstuvyxwz";
		}
		if ($numeros){
			$string .= "0123456789";
		}
		if ($simbolos){
			$string .= "!@#$%¨&*()_+=";
		}

		$r = '';
		$min = 0;
		$max = strlen($string) - 1;
		for($x=0; $x<$tamanho; $x++) {
			$r .= $string[mt_rand($min, $max)];
		}

		return $r;
	}

	/**
	 * Aplica uma máscara na string
	 * String: "3438420000", Máscara: "(##)####-####", Resultado: "(34)3842-0000";
	 * String: "12032010", Máscara: "##/##/##", Resultado: "12/03/2010";
	 * String: "2236", Máscara: "##:##", Resultado: "22:36".
	 * 
	 * @author http://www.oficinadanet.com.br/artigo/php/mascara-de-formatacao-em-php
	 * @param string $mascara
	 * @param string $string
	 * @return string 
	 */
	public static function mask($mascara, $string) {
		$string = str_replace(" ", "", $string);
		for ($i = 0; $i < strlen($string); $i++) {
			$mascara[strpos($mascara, "#")] = $string[$i];
		}
		return $mascara;
	}

	public static function removeAcentos($string) {
		// http://www.vivaolinux.com.br/script/Funcao-Retira-Acentos-php
		$array1 = array("á", "à", "â", "ã", "ä", "é", "è", "ê", "ë", "í", "ì", "î", "ï", "ó", "ò", "ô", "õ", "ö", "ú", "ù", "û", "ü", "ç", "Á", "À", "Â", "Ã", "Ä", "É", "È", "Ê", "Ë", "Í", "Ì", "Î", "Ï", "Ó", "Ò", "Ô", "Õ", "Ö", "Ú", "Ù", "Û", "Ü", "Ç");
		$array2 = array("a", "a", "a", "a", "a", "e", "e", "e", "e", "i", "i", "i", "i", "o", "o", "o", "o", "o", "u", "u", "u", "u", "c", "A", "A", "A", "A", "A", "E", "E", "E", "E", "I", "I", "I", "I", "O", "O", "O", "O", "O", "U", "U", "U", "U", "C");
		return str_replace($array1, $array2, $string);
	}

	public static function strToPermalink($string) {
		$string = trim($string);
		$string = ZFKiller_String::removeAcentos($string);
		$string = strtolower($string);
		$string = preg_replace('/[^a-z0-9_ \-]/', '', $string);
		$string = preg_replace('/[\-_ ]+/', '-', $string);
		return $string;
	}

}